home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMIBEST1.ADF / AmigaBasicStuff / CelScripts / AniScript.BAS < prev    next >
BASIC Source File  |  1987-07-22  |  3KB  |  135 lines

  1. ' Aegis Animator Script Generator
  2. ' By John Foust for Amazing Computing
  3.  
  4. DIM TagName$(10, 1), TagXOffset%(10), TagYOffset%(10), TagPlane%(10)
  5. DIM TagXPos%(10), TagYPos%(10)
  6.  
  7. INPUT "Number of tweens: ", NumTweens%
  8.  
  9. INPUT "Number of pre-existing polygons on the screen: ", BasePoly%
  10.  
  11. INPUT "Name of base polygon: ", TagName$(0,1)
  12. INPUT "Plane of base polygon: ", TagPlane%(0)
  13. INPUT "Starting X, Y position of base polygon: "; BaseXStart%, BaseYStart%
  14. INPUT "Ending X, Y position of base polygon: "; BaseXEnd%, BaseYEnd%
  15.  
  16. INPUT "Number of tag-along polygons: ", NumTags%
  17.  
  18. FOR Tag% = 1 TO NumTags%
  19.   PRINT "Name of tag-along"; Tag%; ": ";
  20.   INPUT TagName$(Tag%, 1)
  21.   PRINT "Name of alternate"; Tag%; ": ";
  22.   INPUT TagName$(Tag%, 0)
  23.   PRINT "X, Y offset of "; TagName$(Tag%, 1);
  24.   PRINT " from "; TagName$(0,1); ": ";
  25.   INPUT TagXOffset%(Tag%), TagYOffset%(Tag%)
  26.   PRINT "Plane of tag-along"; Tag%; ": ";
  27.   INPUT TagPlane%(Tag%)
  28. NEXT Tag%
  29.  
  30. INPUT "Output script file name: "; OutFile$
  31.  
  32. OPEN OutFile$ FOR OUTPUT AS #1
  33.  
  34. ' Make a file with .def extension for *defines
  35. OPEN OutFile$+".def" FOR OUTPUT AS #2
  36.  
  37. ' Define the objects in this script
  38. ' First the base object
  39. PRINT #2, "*define AMIGA_BITMAP "; TagName$(0,1)
  40.  
  41. ' Then the alternate objects
  42. FOR Tag% = 1 TO NumTags%
  43.   PRINT #2, "*define AMIGA_BITMAP "; TagName$(Tag%,1)
  44.   PRINT #2, "*define AMIGA_BITMAP "; TagName$(Tag%,0)
  45. NEXT Tag%
  46.  
  47. CLOSE #2
  48.  
  49. ' Calculate the step size in the X and Y direction for each tween
  50. TweenXStep = (BaseXEnd% - BaseXStart%) / NumTweens%
  51. TweenYStep = (BaseYEnd% - BaseYStart%) / NumTweens%
  52.  
  53. ' Insert the object at the starting point
  54.  
  55. PRINT #1, "*act 8 INSERT_RASTER "; BasePoly%; TagName$(0,1); 
  56. PRINT #1, BaseXStart%; BaseYStart%; TagPlane%(0)
  57.  
  58. FOR Tag% = 1 TO NumTags%
  59.   
  60.   PRINT #1, "*act 8 INSERT_RASTER "; BasePoly% + Tag%;
  61.   PRINT #1, TagName$(Tag%, 1);
  62.   PRINT #1, BaseXStart% + TagXOffset%(Tag%);
  63.   PRINT #1, BaseYStart% + TagYOffset%(Tag%); TagPlane%(Tag%)
  64.  
  65. NEXT Tag%
  66.  
  67. ' Start the object moving for the first tween
  68.  
  69. PRINT #1, "*act 6 MOVE_POLY "; BasePoly%;
  70. PRINT #1, INT(TweenXStep); INT(TweenYStep); 0
  71.  
  72. FOR Tag% = 1 TO NumTags%
  73.   
  74.   PRINT #1, "*act 6 MOVE_POLY "; BasePoly% + Tag%;
  75.   PRINT #1, INT(TweenXStep); INT(TweenYStep); 0
  76.  
  77. NEXT Tag%
  78.  
  79. PRINT #1, ""
  80.  
  81. ' Update our position
  82.  
  83. CurrentXPos% = BaseXStart% + INT(TweenXStep)
  84. CurrentYPos% = BaseYStart% + INT(TweenYStep)
  85.  
  86. ' In each tween, remove each tag-along polygon
  87. ' and replace it with its alternate, moving the
  88. ' whole object as well.  The first tween is done.
  89.  
  90. FOR Tween% = 2 TO NumTweens%
  91.  
  92.   PRINT #1, "*tween 0 200 0 0"
  93.  
  94.   ' Replace each tag-along polygon with its alternate
  95.   FOR Tag% = 1 TO NumTags%
  96.   
  97.     PRINT #1, "*act 3 KILL_POLY "; BasePoly% + Tag% 
  98.  
  99.     PRINT #1, "*act 8 INSERT_RASTER "; BasePoly% + Tag%;
  100.     PRINT #1, TagName$(Tag%, Tween% MOD 2);
  101.     PRINT #1, CurrentXPos% + TagXOffset%(Tag%);
  102.     PRINT #1, CurrentYPos% + TagYOffset%(Tag%);
  103.     PRINT #1, TagPlane%(Tag%)   
  104.     
  105.   NEXT Tag%
  106.   
  107.   ' Now move the whole object
  108.   ' Update our position
  109.   
  110.   CurrentXPos% = CurrentXPos% + INT(TweenXStep)
  111.   CurrentYPos% = CurrentYPos% + INT(TweenYStep)
  112.   
  113.   PRINT #1, "*act 6 MOVE_POLY "; BasePoly%;
  114.   PRINT #1, INT(TweenXStep); INT(TweenYStep); 0
  115.   
  116.   FOR Tag% = 1 TO NumTags% 
  117.    
  118.     PRINT #1, "*act 6 MOVE_POLY "; BasePoly% + Tag%;
  119.     PRINT #1, INT(TweenXStep); INT(TweenYStep); 0
  120.   
  121.   NEXT Tag%
  122.  
  123.   ' Print the blank line between tweens  
  124.   PRINT #1, ""
  125.  
  126. NEXT Tween%
  127.  
  128. CLOSE #1
  129.  
  130. END
  131.  
  132.  
  133.   
  134.     
  135.